package com.another.common.utils.token;

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

public class TokenUtil {

    //这里是加密解密的key。
    public static String tokenKey = "MiTMW2toifJyH0MO";

    /**
     * 根据用户卡号生成token，默认有效期为1个月
     * @param expiresDate  过期时间
     * @param cardNumber
     *            用户卡号
     * @return token
     */
    public static String createToken(String cardNumber, Date expiresDate) {
        // 生成token
        return Jwts.builder().setSubject(cardNumber).setIssuedAt(new Date())// 设置签发时间
                .setExpiration(expiresDate)// 设置过期时间
                .signWith(SignatureAlgorithm.HS512, tokenKey).compact();
    }

    /**
     * 检验token是否可用
     *
     * @param token
     * @return 可用返回true，否则返回false
     */
    public boolean checkToken(String token) {
        try {
            Jwts.parser().setSigningKey(tokenKey).parseClaimsJws(token);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }

    }

}
